package com.opages.transaction.message.dao;

import com.opages.transaction.message.model.TransactionMessage;

import java.util.LinkedHashMap;
import java.util.List;

public interface TransactionMessageDao {
	/**
	 * 根据uuid更新数据
	 * @param transactionMessage 业务实体，里面必须存在uuid的值
	 * @return
	 */
	public int updateByUuid(TransactionMessage transactionMessage);
	/**
	 * 获取单条数据
	 * @param id
	 * @return
	 */
	public TransactionMessage getById(Long id);

	/**
	 * 获取单条数据
	 * @param entity
	 * @return
	 */
	public TransactionMessage get(TransactionMessage entity);

	/**
	 * 查询数据列表，如果需要分页，请设置分页对象，如：entity.setPage(new Page<T>());
	 * @param entity
	 * @return
	 */
	public List<TransactionMessage> findList(TransactionMessage entity);

	/**
	 * 查询所有数据列表
	 * @param entity
	 * @return
	 */
	public List<TransactionMessage> findAllList(TransactionMessage entity);
	/**
	 * 根据查询字段查出数据返回
	 * @param entity 条件
	 * @return List<Map>格式，其中key=查询字段名，value=数据库查询的值
	 */
	public List<LinkedHashMap<String, String>> findMap(TransactionMessage entity);
	/**
	 * 根据条件查询字段数据
	 * @param id 主键
	 * @return Map格式，其中key=查询字段名，value=数据库查询的值
	 */
	public LinkedHashMap<String, String> getMapById(Long id);
	/**
	 * 根据条件查询字段数据
	 * @param entity 条件
	 * @return Map格式，其中key=查询字段名，value=数据库查询的值
	 */
	public LinkedHashMap<String, String> getMap(TransactionMessage entity);

	/**
	 * 插入数据
	 * @param entity
	 * @return
	 */
	public int insert(TransactionMessage entity);

	/**
	 * 更新数据
	 * @param entity
	 * @return
	 */
	public int update(TransactionMessage entity);

	/**
	 * 删除数据（一般为逻辑删除，更新del_flag字段为1）
	 * @param id
	 * @see public int delete(T entity)
	 * @return
	 */
	@Deprecated
	public int physicalDel(Integer id);
	/**
	 * 逻辑删除
	 * @author LDZ
	 * @Date 2017年8月1日 下午6:16:02
	 * @param id 主键
	 * @return
	 */
	public int deleteById(Long id);

	/**
	 * 删除数据
	 * @param entity
	 * @return
	 */
	public int delete(TransactionMessage entity);
}
